package com.bridgeintelligent.tag.mapper;


import com.bridgeintelligent.tag.webserver.dim.mgmt.api.DimDataApproval;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 自定义标签审批持久层
 */
@Mapper
public interface DimFreeApprovalMapper {


    /**
     * 新增自定义标签审批
     * @param dim
     */
    void add(DimDataApproval dim);

    /**
     * 获取审批列表
     * @return
     */
//    List<DimData> findApproveList(@Param("theme") String theme,@Param("dimName") String dimName,@Param("department") String department,@Param("approveState") String approveState,@Param("createTimeStart") String createTimeStart,@Param("createTimeEnd") String createTimeEnd,@Param("uptTimeStart") String uptTimeStart,@Param("uptTimeEnd") String uptTimeEnd,@Param("catalogId") String catalogId,List<String> resourceIds);
    List<DimDataApproval> findApproveList(Map map);

    /**
     * 通过id查找审批自定义标签实体
     * @param approvalId
     * @return
     */
    DimDataApproval findOneById(String approvalId);

    /**
     * 修改审批记录的审批状态
     * @param approvalId
     * @param approvalState
     */
    void updateApprovaleState(@Param("approvalId") String approvalId, @Param("approvalState") String approvalState);

    /**
     * 校验该标签是否正在进行审批流程
     * @param dimId
     * @param status
     * @return
     */
    List<DimDataApproval> checkResourceContains(@Param("dimId") String dimId, @Param("status") String status);

    /**
     * 查找该标签最新的审批记录
     * @param dimId
     * @return
     */
    String findApprovalId(@Param("dimId") String dimId);

    /**
     * 查找该标签审批记录
     * @param dimId
     * @return
     */
    List<DimDataApproval> findApprovalList(@Param("dimId") String dimId);

    /**
     * 查找该标签最新的申请类型
     * @param approvalId
     * @return
     */
    String findWorkerId(@Param("approvalId") String approvalId);
}
